# 自定义函数
# Python是dynamically typed动态类型语言,函数的参数可以接收任意类型
# 对于+操作,传入的参数可以是int、string、list等各种类型,实际执行的操作也不同
# 这种行为称为多态:函数根据传入参数类型的不同,会表现出不同的执行行为
# Python的多态实现起来方便灵活,但是在实际使用过程中也会遇到很多问题,建议在必要的地方增加类型校验
def add(x, y):
    # 返回值
    return x + y


if __name__ == '__main__':
    # 调用自定义函数
    # 整数相加
    result = add(10, 20)
    print(f'result = {result}')

    # 字符串拼接
    result = add('ab', 'c')
    print(f'result = {result}')

    # 列表合并
    result = add([1, 3, 5], [2, 4, 6])
    print(f'result = {result}')

    # 两个不同类型的参数相加,会报错
    result = add(1, 'x')
    print(f'result = {result}')
